当前位置:  开发笔记 > 编程语言 > 正文

$(...)和`...`之间有什么区别

如何解决《$()和``之间有什么区别》经验,为你挑选了3个好方法。

问题很简单,如标题所述:以下两个表达式之间的区别是什么?

$(...)
`...`

例如,有两个变量test1test2不同?

test1=$(ls)
test2=`ls`

unwind.. 9

结果是一样的,但更新的$()语法更清晰,更容易阅读.当试图筑巢时至少加倍.使用旧语法嵌套并不容易,但使用新方法可以正常工作.

相比:

$ echo $(ls $(pwd))

与:

$ echo `ls \`pwd\``

你需要逃避嵌入的反引号,所以它的类型和读取都要复杂得多.

根据这个页面,它们如何处理嵌入式双反斜杠至少有一个细微差别.



1> unwind..:

结果是一样的,但更新的$()语法更清晰,更容易阅读.当试图筑巢时至少加倍.使用旧语法嵌套并不容易,但使用新方法可以正常工作.

相比:

$ echo $(ls $(pwd))

与:

$ echo `ls \`pwd\``

你需要逃避嵌入的反引号,所以它的类型和读取都要复杂得多.

根据这个页面,它们如何处理嵌入式双反斜杠至少有一个细微差别.


使用反引号语法可以实现嵌套*,它只需要大量的反斜杠,并且很快变得几乎不可读.特别是如果你混合其他类型的报价.

2> ELLIOTTCABLE..:

你可能想读man bash:

当使用旧式反引号形式的替换时,反斜杠保留其字面含义,除非后跟$,`或者.第一个不带反斜杠的反引号会终止命令替换.使用$(命令)表单时,括号之间的所有字符组成命令; 没有人特别对待.

这是在联机帮助页的"命令替换"部分下.



3> Keltia..:

使用```是历史语法,POSIX采用了现在标准的`$(...)语法.见2.6.3节

推荐阅读
TXCWB_523
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有